Python类教程解释Python中的类和面向对象编程。
我不会骗你的。如果你从未有过面向对象编程(OOP)的经验,接下来的几篇教程将相当复杂。由于一些原因,类是真棒。首先,它们帮助您重用代码,而不是在程序的其他地方复制代码。当你意识到你想要改变一个函数时,类将挽救你的生命。你只需要它在一个点,而不是10个不同的点改变略有不同的代码。类的另一个重要部分是,它们允许您创建更灵活的函数。首先,我们需要弄得手脏兮兮的,然后想出如何做一个类。
在Python中创建类
例子
|
|
现在,我不会像其他人一样,开始用术语轰炸你。坦率地说,面向对象编程对于初学者来说是相当困难的,把这些抽象概念扔给你只会让你学得更慢,更讨厌OOP。所以,类有点像函数。我们只是建立它使用class关键字,并跟在后面的是我们想要命名的类。在我们的例子中,我们正在做一个计算器,所以就用它来命名。很直白吧!接下来,我们抛出object的论点。这仅仅是这个类上面的一个类。不要太担心它。它涉及一些严肃的术语来解释。所以,只要输入它,我们稍后再谈。
接下来,我们进入了这个小家伙,def init(self):。抽象概念时间!对象由类构成。所以,如果我们有一个班级叫蛋糕。我们可以做蛋糕对象。然而,每当你做蛋糕的时候,它和你以前做的蛋糕不一样。当然,它看起来像它和味道一样,但它不是相同的蛋糕。所以,在我们班,我们有实例,我们知道他们是两个不同的蛋糕。你问我们为什么需要这个?好吧,我们从同一个班级做两个蛋糕。现在,我咬了一口蛋糕。现在,你肯定想知道哪个蛋糕是哪个?这就是为什么实例如此重要!所以,def init(self):只是说让我们创建这个类的一个实例。但是,我们为什么要通过一个自我参数,你可能会问。嗯,这与我们刚才讨论的很有关系。类使对象和类中的函数成为对象的方法。但是,我们确实需要知道哪个类函数属于类的哪个实例,所以我们只是隐式地传递self的属性(在后面的例子中进一步讨论)。最后,我们进入到初始化函数的心脏。在我们使用self.current创建一个实例变量等于零。哇塞!我们完成了最艰难的部分。
下一站是add功能。我们只是在self和另一个参数称为amount。接下来,self就是实例,我们知道哪些实例。数字通过amount传入。使用我们以前的知识,我们明白,我们只是添加任何amount是当前变量。
最后,但并非最不重要的是,我们将这个想法从类中“获取”变量。为了获取self.current变量的值,最佳实践是把它放在一个函数,然后调用函数得到值,我们不应把它和实例混在一起。在实例中设置函数并传递,并告诉Python返回值。
使用Python类
例子
|
|
在另一个文件中,我们输入了这个代码。一旦我们运行它,我们看到它打印2到我们的屏幕。所有的工作只是为了得到2的结果!无论如何,让我们打破这个家伙下来。首先,我假定你的两个类都在Python目录中。接下来,我们使用from ClassOne,让Python引用我们正在讨论的文件。然后,我们用import **声明。它只是意味着我们需要文件中的所有类。在我们的例子中,我们只有一个类,计算器类。下一步,我们创建了一个计算器的对象称为myBuddy并标示8myBuddy = Calculator()。现在,这给myBuddy拥有计算机类所有的变量和函数。(注:一旦myBuddy获取这些变量和函数,我们称之为属性和方法)。因为我们已经初始化了myBuddy,它具有current属性,在计算机类中叫做self.current.并被初始化为0.current。所以,现在我们调用myBuddy.add(2),这是我们在计算器中的添加功能。简单地说,这只是0 + 2。最后,我们输出我们的实例的类变量self.current利用myBuddy.getcurrent()返回我们的变量。
做得好!这有点长。放轻松。这是编程的最困难的概念之一,封装。信不信由你,当你使用字符串,列表,字典等,他们都是从类出来的。从这里开始,你应该花些时间研究面向对象编程,并尝试将其应用到Python中。